package com.yueguang.springai.handle;

import lombok.AllArgsConstructor;

import java.util.Arrays;
import java.util.Objects;

@AllArgsConstructor
public enum OrderHandlerEnum {

    TO_C(1,"ruleA"),
    TO_B(2, "ruleB");

    public final Integer orderType;

    public final String ruleHandler;

    /**
     * 根据订单类型获取对应的处理规则
     *
     * @param orderType 订单类型，用于查找对应的处理规则
     * @return 返回找到的处理规则字符串如果未找到，则返回默认处理规则
     */
    public static String getRuleHandler(Integer orderType){
        // 通过流遍历OrderHandlerEnum的所有值，寻找匹配的订单类型
        // 如果找到匹配的枚举值，则返回其处理规则
        // 如果没有找到匹配的枚举值，则返回OrderHandlerEnum.TO_C的处理规则作为默认值
        return Arrays.stream(OrderHandlerEnum.values()).filter(e -> Objects.equals(e.orderType, orderType)).findFirst()
                .orElse(OrderHandlerEnum.TO_C).ruleHandler;
    }

}

